home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 26.zip / BS1 part 26 / Newsflash issue 2 disk 1.adf / SOURCES / MovieScroll.s.pp / MovieScroll.s
Text File  |  1990-01-20  |  6KB  |  215 lines

  1. ****************************************************************************
  2. * System MOVIE SCROLL Routine (Devpac 2 Source)
  3. *
  4. * By Maurice `Digital Dictator` Wielink 
  5. * Hondemanstraat 51, 1508 GA, Zaandam, The Netherlands
  6.  
  7. * My original Source was Lost so I have Disassembled my Executable Routine.
  8. * Here it is...............
  9. ****************************************************************************
  10.  
  11. *------ PARAMETERS ------*
  12.  
  13. Speed    equ    17     ; Scroll Speed
  14. NrLines equ    12     ; Nr of lines in Text
  15.  
  16. *------------------------*
  17.  
  18.     *************************
  19.     movem.l    d0-d7/a0-a6,-(a7)
  20.     BRA    LC358AE
  21. *-----------------------------------------------*
  22. LC3597E    MOVEQ.L    #NrLines-1,D6        ;Nr of Text Lines -1
  23.     LEA    LC35B1A(pc),A4        ;Address of Text Data
  24.  
  25. LC35994    MOVEQ.L    #10,D0            ;X Coordinate of Text
  26.     MOVE.L    #266,D1            ;Y Coordinate of Text
  27.     MOVEA.L    LC35AE2,A1        ;RastPort            
  28.     JSR    -$F0(A6)        ;Move
  29.     MOVEA.L    LC35AE2,A1
  30.     MOVEA.L    A4,A0            ;Get Text Data
  31.     MOVE.L    #38,D0            ;Nr of Chars in Line
  32.     JSR    -$3C(A6)        ;Text
  33.  
  34.     MOVEQ.L    #18,D7            ;Offset for Scroll Loop (19)
  35.     MOVEQ.L    #0,D2            ;x0 of area to scroll
  36.     MOVEQ.L    #0,D3            ;y0 of area to scroll
  37.     MOVE.L    #320,D4            ;x1 of area to scroll    
  38.     MOVE.L    #276,D5            ;y2 of area to scroll
  39.  
  40. LC359DA    MOVEA.L    LC35AE2,A1        ;RastPort
  41.  
  42. LC359E0    BTST    #$A,$DFF016        ;Right Button = Stop Scroll
  43.     BEQ.s    LC359E0
  44.     BTST    #6,$BFE001        ;Left Button  = EXIT
  45.     BEQ    LC35854
  46.     MOVEQ.L    #0,D0            ;No Vertical Scroll                    
  47.     MOVEQ.L    #1,D1            ;Scroll Up (1 Pixel at the time)
  48.  
  49. LC35A04    CMPI.B    #$FE,$DFF006
  50.     BNE.S    LC35A04
  51.     JSR    -$18C(A6)        ;Scroll Raster
  52.     move.l    d7,-(a7)
  53.     moveq.l    #Speed,d7        ;Delay Value
  54.     JSR    LC35A22(pc)        ;Delay a Bit    
  55.     move.l    (a7)+,d7
  56.     DBF    D7,LC359DA        ;Scroll It
  57.  
  58.     ADDA.L    #38,A4            ;Next Line in text
  59.     DBF    D6,LC35994        ;Until all Lines are Done....
  60.  
  61.     move.l    #800,d7            ;Delay Value
  62.     jsr    LC35A22(pc)        ;Wait a While.....
  63.  
  64.     BRA    LC35854            ;......then EXIT    
  65. *-----------------------------------------------*
  66. LC358AE    lea    LC35AEE(pc),A1            ;Intuition.lib Name
  67.     MOVEQ    #0,D0
  68.     MOVEA.L    4.W,A6                ;execBase at A6
  69.     JSR    -$228(A6)            ;Open IntLib
  70.     MOVE.L    D0,LC35B16
  71.     BEQ    LC358A6
  72.  
  73.     lea    LC35B00(pc),A1
  74.     MOVEQ    #0,D0
  75.     JSR    -$228(A6)            ;Open GfxLib
  76.     MOVE.L    D0,LC35B12 
  77.     BEQ    LC35898
  78.  
  79.     lea    LC35A76(pc),A0            ;Screen Structure
  80.     MOVEA.L    LC35B16,A6            ;IntBase
  81.     JSR    -$C6(A6)            ;OpenScreen (320*276)
  82.     MOVE.L    D0,LC35A96            ;ScreenBase
  83.     BEQ    LC3588A
  84.  
  85.     MOVEA.L    d0,A0                ;ScreenBase at a0
  86.     LEA    $2C(A0),A0            ;Get ViewPort
  87.     MOVE.L    A0,LC35AE6            ;Screen Viewport
  88.  
  89.     LEA    LC35AEA(pc),A1            ;CMap
  90.     MOVEQ    #2,D0                ;Nr of Colors
  91.     MOVEA.L    LC35B12,A6            ;GfxBase
  92.     JSR    -$C0(A6)            ;Load RGB4
  93.     LEA    LC35AAE(pc),A0            ;Window Structure
  94.     MOVE.L    LC35A96,D0            ;ScreenBase
  95.     MOVE.L    D0,$1E(A0)            ;Store ScrPTR in Window        
  96.     MOVEA.L    LC35B16,A6            ;IntBase
  97.     JSR    -$CC(A6)            ;OpenWindow
  98.     MOVE.L    D0,LC35ADE            ;Window Base
  99.     BEQ    LC3587A
  100.  
  101.     MOVEA.L    d0,A0                ;WindowBase at a0
  102.     MOVE.L    $32(A0),LC35AE2            ;WD_RastPort
  103.  
  104.     MOVEA.L    LC35B12,A6            ;GfxBase
  105.     MOVEA.L    LC35AE2,A1            ;WD_RastPort
  106.     MOVEQ.L    #1,D0                ;Color in CMap
  107.     JSR    -$156(A6)            ;SetAPen
  108.  
  109.     MOVE.W    #$3A,$DFF096            ;Remove Mouse Pointer
  110.     MOVEA.L    4,A6                ;ExecBase
  111.     JSR    -$84(A6)            ;Forbid
  112.     MOVEA.L    LC35B12,A6            ;GfxBase at a6
  113.     bra    LC3597E                ;START !!!
  114. *-----------------------------------------------*
  115. * QUIT
  116. LC35854    MOVEA.L    4,A6                
  117.     JSR    -$8A(A6)            ;Permit
  118.     JSR    LC35A3C(pc)            ;FadeOut
  119.     MOVE.W    #$803A,$DFF096            ;Mouse Pointer Back
  120.     MOVEA.L    LC35ADE,A0            ;Window Base
  121.     MOVEA.L    LC35B16,A6            ;IntBase
  122.     JSR    -$48(A6)            ;Close Window
  123. LC3587A    MOVEA.L    LC35A96,A0            ;ScreenBase
  124.     MOVEA.L    LC35B16,A6            ;IntBase
  125.     JSR    -$42(A6)            ;CloseScreen
  126. LC3588A    MOVEA.L    LC35B12,A1            ;GfxBase
  127.     MOVEA.L    4.W,A6                ;ExecBase
  128.     JSR    -$19E(A6)            ;Close Library    
  129. LC35898    MOVEA.L    LC35B16,A1            ;IntBase
  130.     MOVEA.L    4.W,A6                 ;ExecBase
  131.     JSR    -$19E(A6)            ;Close Library
  132. LC358A6    movem.l    (a7)+,d0-d7/a0-a6
  133.     RTS                    ;and Exit !
  134.  
  135. *------- FADE OUT --------*
  136.  
  137. LC35A3C    MOVE.L    #$E,D7                ;15 Values per Color
  138. LC35A42    LEA    LC35AEA(pc),A1            ;Get CMap
  139.     SUBI.W    #$111,2(A1)            ;Chance Color02 
  140.     JSR    LC35A58(pc)            ;Use Subroutine
  141.     DBF    D7,LC35A42            
  142.     RTS
  143.  
  144. LC35A58    MOVEA.L    LC35AE6,A0            ;ViewPort
  145.     MOVEQ    #2,D0                ;Nr of Colors
  146.     MOVEA.L    LC35B12,A6            ;GfxBase
  147.     JSR    -$C0(A6)            ;LoadRGB4
  148.     MOVE.L    D7,-(A7)
  149.     moveq.l    #60,d7
  150.     jsr    LC35A22(pc)
  151.     MOVE.L    (A7)+,D7
  152.     RTS
  153.  
  154. *-----------------------------------------------*
  155. * DELAY ROUTINE
  156. LC35A22    CMPI.B    #$FF,$DFF006
  157.     BNE.S    LC35A22
  158.     DBF    D7,LC35A22
  159.     RTS
  160. *-----------------------------------------------*
  161. * NEWSCREEN STRUCTURE
  162.         even
  163. LC35A76:    dc.w    0,0,320,276      ;Left, Top, Width, Height
  164.         dc.w    1          ;number of bitplanes
  165.         dc.b    0,0          ;detail , block pen
  166.         dc.w    0,$f+$100      ;Low-Res,CustomScreen+ScreenQuiet
  167.         dc.l    DefaultFont,0,0,0
  168.  
  169. DefaultFont:    dc.l    FontName
  170.         dc.w    8        ;Size
  171.         dc.b    0,0
  172. FontName:    dc.b    'topaz.font',0
  173.  
  174.         even
  175.  
  176. * NEWWINDOW STRUCTURE
  177. LC35AAE:    dc.w    0,0,320,276
  178.         dc.b    0,0        ;detail/block pen
  179.         dc.l    0,$1000+$0800+$0100
  180.         dc.l    0,0,0,0,0    
  181.         dc.w    320,276,320,276,$f
  182.  
  183.  
  184. LC35AEE        dc.b    'intuition.library',0
  185. LC35B00     dc.b    'graphics.library',0
  186.  
  187.         even
  188. LC35A96     dc.l    0            ;ScreenBase
  189. LC35AE6     dc.l    0            ;Screen ViewPort 
  190. LC35ADE     dc.l    0            ;WindowBase
  191. LC35AE2        dc.l    0            ;WD_RastPort
  192. LC35B16     dc.l    0            ;IntBase
  193. LC35B12     dc.l    0            ;GfxBase
  194. LC35AEA        dc.w    $000,$FFF        ;CMAP (Black, White)
  195.  
  196. * The Text Data
  197.  
  198. LC35B1A    dc.b    '        Movie Scroll Routine          '
  199.     dc.b    '                                      '
  200.     dc.b    '              Coded by                '
  201.     dc.b    '  Maurice `Digital Dictator` Wielink  '
  202.     dc.b    '    for the Programming Section       '
  203.      dc.b    '     on the Wonderful and Best        '
  204.     dc.b    '       Disk Magazine around           '
  205.     dc.b    '                                      '
  206.     dc.b    '             NEWSFLASH                '
  207.  
  208.     dc.b    '                                      '
  209.     dc.b    '                                      '
  210.     dc.b    '                                      '
  211.  
  212. ;The
  213.  end 
  214.  
  215.